#pragma once

class ErrorCode
{
public:
  static const int SYNTAX_ERROR = 1001;
  static const int SELECT_NOT_ALLOW = 1002;
  static const int SELECT_INTO_NOT_ALLOW = 1003;
  static const int INSERT_NOT_ALLOW = 1004;
  static const int DELETE_NOT_ALLOW = 1005;
  static const int UPDATE_NOT_ALLOW = 1006;
  static const int MINUS_NOT_ALLOW = 1007;
  static const int INTERSET_NOT_ALLOW = 1008;
  static const int MERGE_NOT_ALLOW = 1009;
  static const int REPLACE_NOT_ALLOW = 1010;

  static const int HINT_NOT_ALLOW = 1400;

  static const int CALL_NOT_ALLOW = 1300;
  static const int COMMIT_NOT_ALLOW = 1301;
  static const int ROLLBACK_NOT_ALLOW = 1302;
  static const int START_TRANSACTION_NOT_ALLOW = 1303;
  static const int BLOCK_NOT_ALLOW = 1304;

  static const int SET_NOT_ALLOW = 1200;
  static const int DESC_NOT_ALLOW = 1201;
  static const int SHOW_NOT_ALLOW = 1202;
  static const int USE_NOT_ALLOW = 1203;

  static const int NONE_BASE_STATEMENT_NOT_ALLOW = 1999;

  static const int TRUNCATE_NOT_ALLOW = 1100;
  static const int CREATE_TABLE_NOT_ALLOW = 1101;
  static const int ALTER_TABLE_NOT_ALLOW = 1102;
  static const int DROP_TABLE_NOT_ALLOW = 1103;
  static const int COMMENT_STATEMENT_NOT_ALLOW = 1104;
  static const int RENAME_TABLE_NOT_ALLOW = 1105;
  static const int LOCK_TABLE_NOT_ALLOW = 1106;

  static const int LIMIT_ZERO = 2200;
  static const int MULTI_STATEMENT = 2201;

  static const int FUNCTION_DENY = 2001;
  static const int SCHEMA_DENY = 2002;
  static const int VARIANT_DENY = 2003;
  static const int TABLE_DENY = 2004;
  static const int OBJECT_DENY = 2005;

  static const int ALWAYS_TRUE = 2100;
  static const int CONST_ARITHMETIC = 2101;
  static const int XOR = 2102;
  static const int BITWISE = 2103;
  static const int NONE_CONDITION = 2104;
  static const int LIKE_NUMBER = 2105;
  static const int EMPTY_QUERY_HAS_CONDITION = 2106;
  static const int DOUBLE_CONST_CONDITION = 2107;
  static const int SAME_CONST_LIKE = 2108;
  static const int CONST_CASE_CONDITION = 2109;
  static const int EVIL_HINTS = 2110;
  static const int EVIL_NAME = 2111;
  static const int EVIL_CONCAT = 2112;
  static const int ALWAYS_FALSE = 2113;

  static const int NOT_PARAMETERIZED = 2200;
  static const int MULTI_TENANT = 2201;

  static const int INTO_OUTFILE = 3000;

  static const int READ_ONLY = 4000;
  static const int UNION = 5000;
  static const int INVALID_JOIN_CONDITION = 6000;

  static const int COMPOUND = 8000;

  static const int UPDATE_CHECK_FAIL = 9000;

  static const int OTHER = 9999;
};
